Mobile, electromechanical devices such as robotic devices are designed to move around their environment, whether this environment is inside a building or an outside environment. Some of these robotic devices are designed to move autonomously and some are designed to move according to user generated commands. Commands to control the movement of a robotic device can be generated by a user locally, with respect to the robotic device, such that the user is able to directly observe and then control the robotic devices movement with a wireless control module for instance, or commands to control the movement of a robotic device can be generated remotely by a user and sent over a network for delivery to the robotic device by a wireless router or access point with which the robotic device is associated. In the event that the movement commands are generated by a user from a location remote to the robotic device, it can be important that the user has some sort of visual reference of the environment in which the robotic device is moving. This visual reference can be a schematic or map of the environment local to the robotic device or this visual reference can be a real-time video image of the environment local to the robotic device. In either case, it is useful to have this visual reference when remotely controlling the movements of a robotic device in its environment.
Depending upon the application, it can be satisfactory that the visual environmental reference can be a floor-plan schematic of the environment in which the robotic device is located, or it may be more useful to have a video camera attached in some manner to the robotic device which can deliver real-time video information that is helpful to the user when controlling the movement of the robotic device from a remote location. So, for example, in the case were the robotic device is moving around in an environment in which most or all of the objects in the environment are fixed, a schematic representation of the local environment can be satisfactory. On the other hand, in the case were the robotic device is moving around in an environment that includes other objects that are moving around or an environment in which it is expected to interact with people, is can be more useful to have a real-time video image of this environment available to a remote user. Typically, the attitude of a video camera attached to a robotic device can be controlled, which is to say that its pan and tilt can be controlled independently of the movement of the robotic device. This camera pan/tilt control can be affected manually or automatically, again depending upon the application. So in the event that the function of the robotic device is primarily to interact with people, it may be best that the camera automatically point in the direction of the person speaking at the time. Or in the case where the operation of the robotic device is primarily directed to visual (security application?) as opposed to audio cues, the camera many be manually controlled by the remote user.
Typically, a robotic movement control module is implemented as either a wireless, hand-held module if the control is local or an application running on some sort of computational device connected to a network if the control is remote. In the case where user control is local to the robot, the hand-held device typically includes a joystick mechanism that is employed by the user to direct the movement and the speed of a robotic device. U.S. Pat. No. 6,604,022 disclosed such a hand-held device that incorporates a joystick that has eight compass points to direct a robot's movements. In addition to controlling the direction of movement, the joystick is used to control the speed of the robot if it is engaged from more than three seconds, in which case the robot's speed will increase in the direction selected on the joystick. In the case where user control is remote, a virtual joystick may be displayed on a computer screen that can be manipulated to select the direction and speed of a robotic device. So for instance, an icon can be displayed on the computer screen that represents a joystick which is manipulated using a point and click tool such as a mouse to select a direction and speed. Another method used to control the movements of a robot is described in U.S. Pat. Nos. 6,845,297 and 6,535,793. As described in these two patents, a computer screen displays a graphical representation of the environment of a robot and the user defines locations within the representation that are positions to which the robot moves. The user than selects a “go” button on the computer screen and the robot starts to move toward the position defined in the representation at a selected speed. In this case, a camera is attached to the robot that is controlled manually also using camera control icons that are displayed on the computer screen. Yet another method for controlling the movement of a robot is described in US patent application publication no. 2007/0199108A1 in which both a joystick method and a coordinate selection method are used to determine the movement of the robot. In this application, locations in a room or the room to which the user wants the robot to move are selected on a representation of the room or structure that is displayed on a computer monitor screen and the robot is instructed to move to the location selected. Additionally, one or more cameras can be mounted on the robot with one or both of the cameras used to display a “robot perspective” view of its local environment for showing an “eye level” view or a “ground plane” view which shows the floor in front of the robot and is used for steering the robot. Although all of the robot movement control methods described above are effective means to control the movement of a robotic device in its environment, they are limited to either pre-selecting a position in space to command a robot to move to or they are limited to a real-time movement control icon that, although proximate to the representation of the robot's environment, forces the user to move the focus of their eyes back and forth from the movement control icon to the environmental representation to determine how and when to control a robots movements. This continual visual refocusing from one position on a computer monitor screen used to control a robots movement to another position on the screen that displays the robots movement is a less than ideal method for controlling the movement of a robot.